<?php
	namespace Admin\Controller;

		class CategoryController extends CommonController {
			public function index(){

				$pid=$_GET['id']?$_GET['id']:0;

				$model=M('Category');
				$category=$model->where('pid='.$pid)->select();
				//提取pid 因为下面的pid需要做中文
				foreach ($category as &$va) {
					$category[0]['ppid']=$va['pid'];
				}

				foreach ($category as $key=>$value) 
				{	 
					
					 $num=count(explode(',',rtrim($value['path'],',')));
					 //调用把数字转成汉字的方法 numToWord();
					 $category[$key]['pid']=$this->numToWord($num).'级分类';
				}
				

				if (empty($category)) {

					$category=$model->where('id='.$pid)->select();

					foreach ($category as &$va) 
					{
						$category[0]['ppid']=$va['pid'];
					}
					 // var_dump($category);
					$this->redirect('Category/index',['id'=>$category[0]['ppid']]);
				}		
				$this->assign('category',$category);
				$this->display();
				//+---------------------------------------
				//*分页以上级id作为pid来显示页面数据
				//*查看分类,如果没有子分类则返回上级分类
				//*以上级id 查询获得上级pid 直接跳转
				//+---------------------------------------

			}
			public function adds(){

				$model=D('Category');
				$category=$model->getAll();
				foreach ($category as $key => $value) 
				{
					//把每个分类的path组成数组，计算个数 区分多少级分类
					 $num=count(explode(',',rtrim($value['path'],',')))-1;
					 //重复使用空格 把父级分类和子级分类分开
					 //顶级分类使用空格0次，二级分类使用一次.....
					$category[$key]['name']=str_repeat('&nbsp;&nbsp;', $num).$value['name'];
				}
				 // var_dump($category);
				$this->assign('category',$category);
				$this->display('Category/add');
			}
			//添加分类
			public function add(){
				
				$model=D('Category');
				// 自动验证 ,自动完成得到时间
				$data=$model->create();

				if (!$data) 
				{
					$this->error($model->getError(),U('Category/adds'),1);
				}else{
					//如果为真 代表添加的是子分类 否则是一级分类
					if ($_POST['category']) {
						//得到pid
						$data['pid']=$_POST['category'];
						
						//得到父级path
						$path=$model->setAll($data['pid']);
						//拼接子级path
						$data['path']=$path[0][path].$data['pid'].',';
						$resd=$model->add($data);
						$this->success('添加成功');

					}else{		
						$add=M('category');

						$data['path']='0,';
						$data['pid']=0;
						
						$res=$add->data($data)->add();
						$this->success('添加一级分类成功');
					}
				}
			}


			//删除
			public function delete(){

				$id=$_GET['id'];
				//先查询一下该分类下是否有子分类
				//父类的id是子分类pid所以，查询的时候pid=$id(这个是父类发送过来的id)
				$cate=M('category');
				$pid=$cate->where('pid='.$id)->select();
				if ($pid) {
					$this->error('请先删除分类');
				}else{
					$res=$cate->where('id='.$id)->delete();
					if ($res) {
						$this->success('删除成功');
					}
				}
			}
			/*-----------------------------------------------------------------------------------
						//查看子分类
						public function subclass()
						{
							$id=$_GET['id'];
							$model=M('category');
							$category=$model->where('pid='.$id)->select();

							foreach ($category as $key=>$value) 
							{
								$category[$key]['pidd']=$category[$key]['pid'];
								 $num=count(explode(',',rtrim($value['path'],',')));
								 //调用把数字转成汉字的方法 numToWord();
								 $category[$key]['pid']=$this->numToWord($num).'级分类';
								 //有的地方需要用到pid 找个数据集装载
								 
							}
							var_dump($category[0]['pid']);
							if (empty($category)) {
								 // 下面的方法也行
									// 如果下面没有分类则不直接返回上
									// $url=$_SERVER["HTTP_REFERER"];
									// header("location:$url");
								
								$this->redirect('Category/subclass', ['id' => 2]);
							}
						
							$this->assign('category',$category);
							$this->display('Category/index');

							
						}
			------------------------------------------------------------------------------------
*/
			//把数字转换成汉字
			public function numToWord($num)
			{
  			 /**
  			 	*@author ja颂 
				* 把数字1-1亿换成汉字表述，如：123->一百二十三
				* @param [num] $num [数字]
				* @return [string] [string]
				*/
				$chiNum = array('零', '一', '二', '三', '四', '五', '六', '七', '八', '九');
				$chiUni = array('','十', '百', '千', '万', '亿', '十', '百', '千');
				 
				$chiStr = '';
				 
				$num_str = (string)$num;
				 
				$count = strlen($num_str);
				$last_flag = true; //上一个 是否为0
				$zero_flag = true; //是否第一个
				$temp_num = null; //临时数字
				 
				$chiStr = '';//拼接结果
				//第一个if开始
				if ($count == 2) 
				{//两位数
					$temp_num = $num_str[0];
					$chiStr = $temp_num == 1 ? $chiUni[1] : $chiNum[$temp_num].$chiUni[1];
					$temp_num = $num_str[1];
					$chiStr .= $temp_num == 0 ? '' : $chiNum[$temp_num]; 
				}else if($count > 2)
				{
					$index = 0;
					for ($i=$count-1; $i >= 0 ; $i--) 
					{ 
							$temp_num = $num_str[$i];
							//第二个if开始
							if ($temp_num == 0) 
							{	
								//第三个if开始
								if (!$zero_flag && !$last_flag ) 
								{
									$chiStr = $chiNum[$temp_num]. $chiStr;
									$last_flag = true;
								}//第三个if结束
							}else{
									$chiStr = $chiNum[$temp_num].$chiUni[$index%9] .$chiStr;
									$zero_flag = false;
									$last_flag = false;
								}//第二个if else 结束
						$index ++;
					}//for结束
				}else{
						$chiStr = $chiNum[$num_str[0]]; 
					}  //第一个if else 结束
					return $chiStr;
				}









		}